<!doctype html>
<html lang=en>
<meta charset=utf-8>
<title>FormData: get and getAll</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
    <link rel="help" href="https://xhr.spec.whatwg.org/#dom-formdata-get" />
    <link rel="help" href="https://xhr.spec.whatwg.org/#dom-formdata-getall" />
<div id="log"></div>
<form id="form">
    <input type="hidden" name="key" value="value1">
    <input type="hidden" name="key" value="value2">
</form>
<form id="empty-form" />
<script>
    test(function() {
        assert_equals(create_formdata(['key', 'value1'], ['key', 'value2']).get('key'), "value1");
    }, 'testFormDataGet');
    test(function() {
        assert_equals(new FormData(document.getElementById('form')).get('key'), "value1");
    }, 'testFormDataGetFromForm');
    test(function() {
        assert_equals(new FormData(document.getElementById('form')).get('nil'), null);
    }, 'testFormDataGetFromFormNull');
    test(function() {
        assert_equals(new FormData(document.getElementById('empty-form')).get('key'), null);
    }, 'testFormDataGetFromEmptyForm');
    test(function() {
        assert_equals(create_formdata(['key', 'value1'], ['key', 'value2']).get('nil'), null);
    }, 'testFormDataGetNull1');
    test(function() {
        assert_equals(create_formdata().get('key'), null);
    }, 'testFormDataGetNull2');
    test(function() {
        assert_array_equals(create_formdata(['key', 'value1'], ['key', 'value2']).getAll('key'), ["value1", "value2"]);
    }, 'testFormDataGetAll');
    test(function() {
        assert_array_equals(create_formdata(['key', 'value1'], ['key', 'value2']).getAll('nil'), []);
    }, 'testFormDataGetAllEmpty1');
    test(function() {
        assert_array_equals(create_formdata().getAll('key'), []);
    }, 'testFormDataGetAllEmpty2');
    test(function() {
        assert_array_equals(new FormData(document.getElementById('form')).getAll('key'), ["value1", "value2"]);
    }, 'testFormDataGetAllFromForm');
    test(function() {
        assert_array_equals(new FormData(document.getElementById('form')).getAll('nil'), []);
    }, 'testFormDataGetAllFromFormNull');
    test(function() {
        assert_array_equals(new FormData(document.getElementById('empty-form')).getAll('key'), []);
    }, 'testFormDataGetAllFromEmptyForm');

    function create_formdata() {
        var fd = new FormData();
        for (var i = 0; i < arguments.length; i++) {
            fd.append.apply(fd, arguments[i]);
        };
        return fd;
    }
</script>
